home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / inet / internet-drafts / draft-ietf-tpix-tcpopt-00.txt < prev    next >
Text File  |  1993-07-08  |  11KB  |  386 lines

  1.  
  2. TP/IX Working Group                                        R. L. Ullmann
  3. Internet Draft                              Process Software Corporation
  4.                                                            June 30, 1993
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.                         TCP version 7 options
  12.  
  13. 1  Status of this Memo
  14.  
  15. This memo describes experimental option definitions for use with the
  16. TP/IX version 7 TCP.
  17.  
  18. This document is an Internet Draft.  Internet Drafts are working
  19. documents of the Internet Engineering Task Force (IETF), its Areas,
  20. and its Working Groups.  (Note that other groups may also distribute
  21. working documents as Internet Drafts).
  22.  
  23. Internet Drafts are draft documents valid for a maximum of six months.
  24. Internet Drafts may be updated, replaced, or obsoleted by other
  25. documents at any time.  It is not appropriate to use Internet Drafts
  26. as reference material or to cite them other than as a "working draft"
  27. or "work in progress."
  28.  
  29. Please check the I-D abstract listing contained in each Internet Draft
  30. directory to learn the current status of this or any other Internet
  31. Draft.
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64. Ullmann            DRAFT: expires December 29, 1993            [page  1]
  65.  
  66. Internet draft            TCP version 7 options            June 30, 1993
  67.  
  68.  
  69. 2  Contents
  70.  
  71.         1       Status of this Memo  . . . . . . . . . . . . . . . . 1
  72.         2       Contents . . . . . . . . . . . . . . . . . . . . . . 2
  73.         3       Introduction . . . . . . . . . . . . . . . . . . . . 3
  74.         4       Selective Acknowledgement  . . . . . . . . . . . . . 3
  75.         5       Time Stamp . . . . . . . . . . . . . . . . . . . . . 3
  76.         6       Record Mark  . . . . . . . . . . . . . . . . . . . . 4
  77.         7       References . . . . . . . . . . . . . . . . . . . . . 6
  78.         8       Author's Address . . . . . . . . . . . . . . . . . . 6
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128. Ullmann            DRAFT: expires December 29, 1993            [page  2]
  129.  
  130. Internet draft            TCP version 7 options            June 30, 1993
  131.  
  132.  
  133. 3  Introduction
  134.  
  135. This memo presents several options for version 7 of the TCP.  Two of
  136. them provide for the extensions defined by the TCP Large Windows
  137. project not covered in the basic field definitions.  The other option
  138. helps provide some of the semantics expected of the transport layer by
  139. OSI applications, and may be useful to other applications defined on
  140. the TCP.
  141.  
  142. 4  Selective Acknowledgement
  143.  
  144. The selective acknowledgement (SACK) option (type = 4) indicates that
  145. some block of data, not "connected" to the left (start) edge of the
  146. TCP window has been received.  It need not be transmitted again by the
  147. other TCP and will be acknowledged by the TCP sending the SACK option
  148. in the normal way when the window edge arrives at the first sequence
  149. number in the block.
  150.  
  151.      0                   1                   2                   3
  152.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  153.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  154.     |        type = 4               |   length = 16                 |
  155.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  156.     |                                                               |
  157.     +        start sequence number                                  +
  158.     |                                                               |
  159.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  160.     |                                                               |
  161.     +        end sequence number                                    +
  162.     |                                                               |
  163.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  164.  
  165.  
  166.  
  167. This acknowledges receipt of bytes between (start) and (end-1).  If
  168. end is equal to or less than start in sequence space, the option is
  169. meaningless, and must be ignored.
  170.  
  171. The SACK option should not be used to acknowledge the FIN (or SYN)
  172. sequence number.  A selective acknowledgement that attempts to
  173. acknowledge the FIN sequence number should be ignored.
  174.  
  175. The selective acknowledgement option may occur more than once in a TCP
  176. segment, acknowledging receipt of more than one block of data.  A
  177. block may represent more than one consecutive segment.  It is probably
  178. unreasonable to expect the other TCP to use a SACK that acknowledges
  179. less than a full segment.
  180.  
  181. 5  Time Stamp
  182.  
  183. The time stamp option (type = 5) is used for enhanced measurement of
  184. the round-trip delays of the network path being used for a TCP
  185. connection.  It contains a timestamp value selected by the sending
  186. TCP, and a copy of the (usually) most recently-received timestamp from
  187. the other TCP.
  188.  
  189.  
  190.  
  191.  
  192. Ullmann            DRAFT: expires December 29, 1993            [page  3]
  193.  
  194. Internet draft            TCP version 7 options            June 30, 1993
  195.  
  196.  
  197.  
  198.      0                   1                   2                   3
  199.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  200.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  201.     |        type = 5               |   length = 16                 |
  202.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  203.     |                                                               |
  204.     +        Timestamp value                                        +
  205.     |                                                               |
  206.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  207.     |                                                               |
  208.     +        Echoed timestamp reply                                 +
  209.     |                                                               |
  210.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  211.  
  212.  
  213.  
  214. The timestamp field is only valid when its value is non-zero.
  215.  
  216. The reply field is only valid when the ACK flag is set in the TCP
  217. header, and the value of the reply field is non-zero.  When the ACK
  218. flag is not set, the timestamp reply field (if the option appears)
  219. must be zero.
  220.  
  221. Please refer to [RFC1323] for the precise use of this option in
  222. round-trip measurements.  The version 7 TS option is not used for the
  223. PAWS mechanism described therein; the 64-bit sequence space is not
  224. expected to wrap within a connection.
  225.  
  226. The exact semantics of the timestamp values used by the (remote) TCP
  227. are not specified; the frequency, resolution, and stabilty of the
  228. remote clock are not used by the local TCP.  The local TCP should only
  229. copy specific remote TS values into the echo-reply field.  ([RFC1323]
  230. specifies that the TS values must be monotonically non-decreasing, for
  231. use with PAWS; this may be unnecessary here.)
  232.  
  233. 6  Record Mark
  234.  
  235. The record mark option (type = 6) indicates the boundary of an
  236. application record.  The record mark is constructed by the TCP service
  237. interface at the sender, and passed to the receiver's service
  238. interface.  It is not used directly by the TCP, except that the TCP
  239. may use record marks as hints to where segments might be divided for
  240. maximum performance.
  241.  
  242.      0                   1                   2                   3
  243.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  244.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  245.     |        type = 6               |   length = 8                  |
  246.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  247.     |                                                               |
  248.     +        mark sequence number                                   +
  249.     |                                                               |
  250.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  251.  
  252.  
  253.  
  254.  
  255.  
  256. Ullmann            DRAFT: expires December 29, 1993            [page  4]
  257.  
  258. Internet draft            TCP version 7 options            June 30, 1993
  259.  
  260.  
  261.  
  262.  
  263. The mark sequence number identifies the first octet of the following
  264. record.  This is consistant with the definition of the acknowlegement
  265. field, which identifies a point "in between" octets by specifying the
  266. number of the following octet.
  267.  
  268. The mark must point somewhere within the segment carrying the option,
  269. i.e.  it must be between the segment sequence number and the sequence
  270. number plus the segment size, inclusive.  Receivers may ignore record
  271. mark options that point outside the segment.
  272.  
  273. The option may occur any number of times within one segment.
  274.  
  275. There is an implicit record mark at sequence SYN+1, and an implicit
  276. mark at sequence FIN.  (And remember that these may be the same
  277. point.) A sending TCP may prefer to send an explicit mark at SYN+1,
  278. possibly on the SYN segment itself; this allows early indication to
  279. the receiver's application that record marking is available and will
  280. be used.
  281.  
  282. Note that to be useful when a record is sent in exactly one segment,
  283. the option marking the record boundary should point at the end of the
  284. segment.  (I.e.  the record mark between two records should be sent
  285. with the first record, not the second.) If this is not done, the
  286. reciever would have to wait for a subsequent record before being able
  287. to pass the first to the application.
  288.  
  289. There are no zero-length records.  The record mark itself does not
  290. have a sequence number; there is no way to distinguish a repeat of a
  291. record mark (in, for example, a segment containing retransmitted data)
  292. and thus no way to deliver two or more record marks at the same
  293. sequence number.
  294.  
  295. Finally, it may be desireable for the TCP to request network layer
  296. conversion prohibition (IP Don't Convert option) to prevent loss of
  297. record marking if the network route changes to traverse version 4
  298. systems.  (Another possibility is to redefine the high bit of the
  299. option type field to be an indicator that the conversion must fail if
  300. the option is not translatable; this feature was in a prior version of
  301. TP/IX.  If such a failure occured, the datagram would be returned with
  302. ICMP conversion failed/code 11.)
  303.  
  304. An earlier version of TP/IX specified a TCP flag (M), indicating "more
  305. data" in the style of (e.g.) X.25.  When the M flag was clear, the
  306. segment was the last (or only) part of the application record; when
  307. set, it indicated that there was more data to come.  The flag method
  308. was discarded in favor of the option because it added constraints to
  309. the TCP that are undesirable.  Like X.25 and OSI TP0, the flag permits
  310. a TSDU (Transport Service Data Unit) to span multiple TPDUs, but does
  311. not permit the coelescing of multiple small TSDUs into one TPDU, and
  312. thence one network datagram.  In the TCP architecture, segmentation is
  313. entirely in the control of the TCP, and the record marking is only of
  314. interest to the application.
  315.  
  316.  
  317.  
  318.  
  319.  
  320. Ullmann            DRAFT: expires December 29, 1993            [page  5]
  321.  
  322. Internet draft            TCP version 7 options            June 30, 1993
  323.  
  324.  
  325. 7  References
  326.  
  327.  [RFC1323]   V. Jacobson, R. T. Braden, D. A. Borman.  TCP extensions
  328.                for high performance.  May, 1992.
  329.  
  330.  [RFC1475]   Robert Ullmann.  TP/IX:  The Next Internet.  Process
  331.                Software Corporation.  June, 1993.
  332.  
  333.  [RFC1476]   Robert Ullmann.  RAP:  Internet Route Access Protocol.
  334.                Process Software Corporation.  June, 1993.
  335.  
  336. 8  Author's Address
  337.  
  338.  
  339. Robert Ullmann
  340. Process Software Corporation
  341. 959 Concord Street
  342. Framingham, MA 01701
  343. USA
  344.  
  345. Phone: +1 508 879 6994 x226
  346. Email: Ariel@Process.COM
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385. Ullmann            DRAFT: expires December 29, 1993            [page  6]
  386.